ffmpeg -loop 1 -t 5 -i test/image1.jpg \
       -loop 1 -t 5 -i test/image2.jpg \
       -loop 1 -t 5 -i test/image3.jpg \
       -loop 1 -t 5 -i test/image2.jpg \
       -filter_complex "\
            [0][1]xfade=transition=fade:duration=1:offset=4[bg1]; \
            [bg1][2]xfade=transition=fade:duration=1:offset=8[bg2]; \
            [bg2][3]xfade=transition=fade:duration=1:offset=12,format=yuv420p" output.mp4 -y
# offset1=2 , t1 - duration1 = 3-1 = 2
# offset=6 , t1 - duration1 + t2 - duration2 = 3-1 + 5-1 = 6
# off


# 第一个 offset 的计算方式: t1 - duration1 , 第三张图片不显示的原因? offset 的计算错误,应该是


ffmpeg -loop 1 -t 5 -i test/image1.jpg \
       -loop 1 -t 5 -i test/image2.jpg \
       -loop 1 -t 5 -i test/image3.jpg \
       -filter_complex "[0][1]xfade=transition=fade:duration=1:offset=4[bg];[bg][2]xfade=transition=fade:duration=1:offset=8,format=yuv420p" output.mp4

  # q: 第三张图片的 offset 为什么是8?
  # a: 3 - 1 + 5 - 1 = 8


ffmpeg -loop 1 -t 5 -i test/image1.jpg -loop 1 -t 5 -i test/image2.jpg -loop 1 -t 5 -i test/image3.jpg -loop 1 -t 5 -i test/image4.jpg -filter_complex "\
[0][1]xfade=transition=fade:duration=1:offset=4[bg1]; \
[bg1][2]xfade=transition=fade:duration=1:offset=8[bg2]; \
[bg2][3]xfade=transition=fade:duration=1:offset=12,format=yuv420p" output.mp4 -y

ffmpeg -loop 1 -t 5 -i test/image1.jpg -loop 1 -t 5 -i test/image2.jpg -loop 1 -t 5 -i test/image3.jpg -loop 1 -t 5 -i test/image4.jpg -filter_complex "\
[0][1]xfade=transition=fade:duration=1:offset=4[bg1]; \
[bg1][2]xfade=transition=fade:duration=1:offset=8[bg2]; \
[bg2][3]xfade=transition=fade:duration=1:offset=12,format=yuv420p" output.mp4 -y



# offset 的计算方式
# 1. offset1 = t1 - duration1 = 5 - 1 = 4  # 第一个图片的持续时间,减掉第一个图片的过渡时间 ( 从这个图片开始会有转场 )
# 2. offset2 = t1 - duration1 + t2 - duration2 = 5 - 1 + 5 - 1 = 8  # 这是计算第二个图片的转场开始时间,首先,应该从 offset1 开始,第二张图片就开始显示了,那么正好加上第二张图片的完整显示时间,就是第三张图片的转场开始时间
# 3. offset3 = t1 - duration1 + t2 - duration2 + t3 - duration3 = 5 - 1 + 5 - 1 + 5 - 1 = 12 # 第三张图片的开始时间的计算方式


# 简单说明
# 1. offset1 = t1 - duration1 = 5 - 1 = 4  # 第二个图片的开始时间
# 2. offset2 = offset1 + t2 - duration2 = 4 + 5 = 8  # 第三个图片的开始时间
# 3. offset3 = offset2 + t3 - duration3 = 8 + 5  - 1= 12 # 第四个图片的开始时间

ffmpeg -loop 1 -t 5 -i test/image1.jpg -loop 1 -t 5 -i test/image2.jpg -loop 1 -t 5 -i test/image3.jpg -loop 1 -t 5 -i test/image4.jpg -filter_complex "\
[0][1]xfade=transition=fade:duration=1:offset=4[bg1]; \
[bg1][2]xfade=transition=fade:duration=1:offset=9[bg2]; \
[bg2][3]xfade=transition=fade:duration=1:offset=12[bg3],format=yuv420p" output.mp4 -y





# offset 的计算方式
# 1. offset1 = t1 - duration1 = 5 - 1 = 4  # 第一个图片的持续时间,减掉第一个图片的过渡时间 ( 从这个图片开始会有转场 )
# 2. offset2 = t1 - duration1 + t2 = 5 - 1 + 5 = 9  # 这是计算第二个图片的转场开始时间,首先,应该从 offset1 开始,第二张图片就开始显示了,那么正好加上第二张图片的完整显示时间,就是第三张图片的转场开始时间
# 3. offset3 = t1 - duration1 + t2 - duration2 + t3 = 5 - 1 + 5 - 1 + 5 = 14

# 你要注意 [bg1][2] 这类的构建

